/*
 *  Creature.h
 *  
 *
 *  Created by Daniel Condon on 25/07/12.
 *  Copyright 2012 __MyCompanyName__. All rights reserved.
 *
 */

#ifndef CREATURE_GUARD
#define CREATURE_GUARD

class Creature{
private:
	//probability of a migration
	double Pmig;
	//probability of a short distance dispersal
	double Psdd;
	//probability of a long distance dispersal
	double Pldd;
	//growth rate of this specific creature
	double growthRate;
public:
	Creature();
	/*--This function sets the probabilities of migration, long/short distance dispersals
	 Params:
	 Parameter(0) : Probability of a migration
	 Parameter(1) : Probability of a short distance dispersal
	 NOTE : Probability of a long distance dispersal = 1 - Psdd
	 */
	Creature(double, double);
	
	/*--This function returns the probability of a migration
	 Pre : Pmig is not NULL
	 Returns : probability of a migration
	 */
	double getPmig();
	
	/*--This function returns the probability of a short distance dispersal
	 Pre : Psdd is not NULL
	 Returns : probability of a short distance dispersal
	 */
	double getPsdd();
	
	/*--This function returns the probability of a long distance dispersal
	 Pre : Pldd is not NULL
	 Returns : probability of a long distance dispersal
	 */
	double getPldd();
	
	/*--This function returns the rate of growth
	 Pre : growthRate is not NULL
	 Returns : rate of growth of species
	 */
	double getGrowth();
};

#endif